## DESCRIPTION
## Matching question template
## ENDDESCRIPTION

## KEYWORDS('matching', 'template')

## DBsubject('WeBWorK')
## DBchapter('WeBWorK Tutorial')
## DBsection('Fort Lewis Tutorial 2011')
## Date('01/30/2011')
## Author('Paul Pearson')
## Institution('Fort Lewis College')
## TitleText1('')
## EditionText1('')
## AuthorText1('')
## Section1('')
## Problem1('')


###########################
#  Initialization

DOCUMENT();  

loadMacros(
"PGstandard.pl",
"MathObjects.pl",
"PGchoicemacros.pl",
"PGgraders.pl",
"unionTables.pl",
);

TEXT(beginproblem());


###########################
#  Setup

#
#  Create a matching list and use popups
#
$ml = new_match_list();
$ml->rf_print_q(~~&pop_up_list_print_q);
$ml->ra_pop_up_list([
"No answer" => "?",
"A" => "A", "B" => "B", "C" => "C", 
"D" => "D", "E" => "E", "F" => "F",
"G" => "G", "H" => "H", "I" => "I",
]);

#
#  Add correct questions and answers
#
$ml->qa(
"Question a?", "Answer a",
"Question b?", "Answer b",
"Question c?", "Answer c",
"Question d?", "Answer d",
"Question e?", "Answer e",
"Question f?", "Answer f",
);
$ml->choose(6);

#
#  Add extra incorrect answers
#
$ml->extra(
"Extra answer 1", 
"Extra answer 2",
);
$ml->choose_extra(2);
  
$ml->makeLast("None of the above");



###########################
#  Main text

Context()->texStrings;
BEGIN_TEXT
Match each question with its answer.
\{ ColumnMatchTable($ml) \}
END_TEXT
Context()->normalStrings;


############################
#  Answer evaluation

$showPartialCorrectAnswers = 0;

#
#  Incremental grader
#
install_problem_grader(~~&custom_problem_grader_fluid);
$ENV{'grader_numright'} = [2,4,6];
$ENV{'grader_scores'} = [0.3,0.6,1];
$ENV{'grader_message'} = "You can earn " .
"30% partial credit for 2 - 3 correct answers, and ".
"60% partial credit for 4 - 5 correct answers.";

#
#  All or nothing grader
#  
# install_problem_grader(~~&std_problem_grader);

ANS( str_cmp( $ml->ra_correct_ans ) );


############################
#  Solution

@correct = @{$ml->ra_correct_ans()};
$answerstring = join(", ", @correct);
Context()->texStrings;
BEGIN_SOLUTION
${PAR}SOLUTION:$PAR
The correct answers are $answerstring
END_SOLUTION
Context()->normalStrings;

COMMENT('MathObject version.');

ENDDOCUMENT();
